
package cn.edu.scau.cmi.hombio.service;

import cn.edu.scau.cmi.hombio.domain.CureMedicine;
import cn.edu.scau.cmi.hombio.domain.CureTaskMedicine;
import cn.edu.scau.cmi.hombio.domain.Medicine;
import cn.edu.scau.cmi.hombio.domain.MedicineStorageDetail;
import cn.edu.scau.cmi.hombio.domain.MedicineSupplier;
import cn.edu.scau.cmi.hombio.domain.MedicineTakeDetail;
import cn.edu.scau.cmi.hombio.domain.PreventionType;

import java.util.List;
import java.util.Set;

/**
 * Spring service that handles CRUD requests for Medicine entities
 * 
 */
public interface MedicineService {

	/**
	* Delete an existing MedicineSupplier entity
	* 
	 */
	public Medicine deleteMedicineMedicineSuppliers(Integer medicine_id, Integer related_medicinesuppliers_id);

	/**
	* Load an existing Medicine entity
	* 
	 */
	public Set<Medicine> loadMedicines();

	/**
	* Save an existing MedicineStorageDetail entity
	* 
	 */
	public Medicine saveMedicineMedicineStorageDetails(Integer id, MedicineStorageDetail related_medicinestoragedetails);

	/**
	 */
	public Medicine findMedicineByPrimaryKey(Integer id_1);

	/**
	* Delete an existing MedicineStorageDetail entity
	* 
	 */
	public Medicine deleteMedicineMedicineStorageDetails(Integer medicine_id_1, Integer related_medicinestoragedetails_id);

	/**
	* Delete an existing MedicineTakeDetail entity
	* 
	 */
	public Medicine deleteMedicineMedicineTakeDetails(Integer medicine_id_2, Integer related_medicinetakedetails_id);

	/**
	* Return a count of all Medicine entity
	* 
	 */
	public Integer countMedicines();

	/**
	* Delete an existing PreventionType entity
	* 
	 */
	public Medicine deleteMedicinePreventionTypesForMedicineId(Integer medicine_id_3, Integer related_preventiontypesformedicineid_id);

	/**
	* Delete an existing PreventionType entity
	* 
	 */
	public Medicine deleteMedicinePreventionTypesForReportMedicineId(Integer medicine_id_4, Integer related_preventiontypesforreportmedicineid_id);

	/**
	* Save an existing CureTaskMedicine entity
	* 
	 */
	public Medicine saveMedicineCureTaskMedicines(Integer id_2, CureTaskMedicine related_curetaskmedicines);

	/**
	* Save an existing PreventionType entity
	* 
	 */
	public Medicine saveMedicinePreventionTypesForReportMedicineId(Integer id_3, PreventionType related_preventiontypesforreportmedicineid);

	/**
	* Delete an existing CureTaskMedicine entity
	* 
	 */
	public Medicine deleteMedicineCureTaskMedicines(Integer medicine_id_5, Integer related_curetaskmedicines_id);

	/**
	* Save an existing Medicine entity
	* 
	 */
	public void saveMedicine(Medicine medicine);

	/**
	* Save an existing MedicineTakeDetail entity
	* 
	 */
	public Medicine saveMedicineMedicineTakeDetails(Integer id_4, MedicineTakeDetail related_medicinetakedetails);

	/**
	* Save an existing MedicineSupplier entity
	* 
	 */
	public Medicine saveMedicineMedicineSuppliers(Integer id_5, MedicineSupplier related_medicinesuppliers);

	/**
	* Save an existing CureMedicine entity
	* 
	 */
	public Medicine saveMedicineCureMedicines(Integer id_6, CureMedicine related_curemedicines);

	/**
	* Delete an existing CureMedicine entity
	* 
	 */
	public Medicine deleteMedicineCureMedicines(Integer medicine_id_6, Integer related_curemedicines_id);

	/**
	* Return all Medicine entity
	* 
	 */
	public List<Medicine> findAllMedicines(Integer startResult, Integer maxRows);

	/**
	* Save an existing PreventionType entity
	* 
	 */
	public Medicine saveMedicinePreventionTypesForMedicineId(Integer id_7, PreventionType related_preventiontypesformedicineid);

	/**
	* Delete an existing Medicine entity
	* 
	 */
	public void deleteMedicine(Medicine medicine_1);
}